const path = require("path");

// 1. 获取路径中的基础名称
/*
  path.basename(str)
  返回值：返回的就是接收路径当中的最后一部分

  注意
    1. 第二个参数标识扩展名，如果说没有设置则返回完整的文件名称带后缀
    2. 第二个参数作为后缀时，如果没有在在当前路径中被匹配到，那么就会忽略，依旧返回带后缀的路径
    3. 处理目录路径的时候，如果说，结尾有路径分隔符，则也会被忽略掉，直接返回最后一层目录的路径
*/
// console.log(__filename); // E:\font-code\08.Node\lagou\02_path\01_path-basename,dirname,extname.js
// console.log(
//   path.basename(__filename, ".jsx"),
//   path.basename(__filename, ".js")
// ); // 01_path-basename,dirname,extname.js  01_path-basename,dirname,extname
// console.log(path.basename("/a/b/c")); // c

// 2. 获取路径目录名
/*
  path.dirname(str)
    返回值：返回路径中最后一个部分的上一层目录所在的路径

    注意：
      1. 如果路径最后一层为分隔符，会先忽略掉分隔符在操作
*/
// console.log(path.dirname(__filename), __dirname);
// console.log(path.dirname("/a/b/c")); // /a/b
// console.log(path.dirname("/a/b/c/")); // /a/b

// 3.获取路径的扩展名
/*
  path.extname(str)
    返回值： 返回 path 路径中响应文件的后缀名

    注意：
      如果path路径中存在多个点，他匹配的时最后一个点.到结尾的内置
*/
console.log(path.extname(__filename)); // .js
console.log(path.extname("/a/b/c")); //
console.log(path.extname("/a/b/index.html.js.css")); // .css
console.log(path.extname("/a/b/index.html.js.")); // .
